home *** CD-ROM | disk | FTP | other *** search
- 10 REM EXAMPLES
- 11 :
- 980 REM AFTER DISPLAYING MAIN MENU IN BANK 3, RESTORE YOUR TEXT AND GRAPHICS
- 981 REM TO BANK 0
- 985 POKE 53265,PEEK(53265)AND239:REM BLANK SCREEN
- 990 POKE 56578,PEEK(56578)OR3:REM SET CIA TO OUTPUT
- 991 POKE56576,(PEEK(56576)AND252)OR3:REM SWITCH TO BANK 0
- 993 POKE53272,(PEEK(53272)AND15)OR16:REM SET START OF TEXT SCREEN/COLOR MEMORY
- 994 POKE53272,(PEEK(53272)AND240)OR4:REM SET START OF BIT MAP
- 996 POKE53265,PEEK(53265)AND223:REM TURN OFF BIT MAP MODE
- 997 POKE53270,PEEK(53270)AND239:REM TURN OFF MULTICOLOR MODE
- 998 POKE 49191,3:POKE49194,4:POKE49195,16:REM SET NEW START ADDRESSES
- 1000 REM*********************************
- 1002 REM EXAMPLES
- 1004 REM*********************************
- 1006 REM
- 1008 CLR
- 1010 GOSUB 21200:REM SET UP VARIABLES
- 1020 POKE LO,1:POKE LE,1 :REM LOCK CURSOR AND SET SMOOTHING LEVEL:POKE SN,0
- 1025 POKE S1,6:POKES2,6:POKEM1,255:POKE M2,255
- 1030 POKE CB,13:POKE CS,12
- 1040 PRINTCHR$(144);:REM BLACK LETTERS
- 1050 PRINTCHR$(147):PRINT" APPLICATIONS AND EXAMPLES":PRINT:PRINT
- 1055 POKE53265,PEEK(53265)OR16:REM TURN ON SCREEN (UNBLANK SCREEN)
- 1060 PRINT" OLD SMOOTHIE":PRINT
- 1070 PRINT" JIM'S IDEA":PRINT
- 1090 PRINT" BAR GRAPH":PRINT
- 1100 PRINT" WIPEOUTS":PRINT
- 1110 PRINT" GRIDMAKER":PRINT
- 1120 PRINT" MAIN MENU"
- 1130 PRINT:PRINT:PRINT:PRINT
- 1135 PRINT:PRINT:PRINT:PRINT:PRINT" PRESS LEFT BUTTON TO MAKE SELECTION"
- 1400 REM ************MENU***************
- 1410 POKE SF,0:SYS SP:POKE SF,2:POKE XS,112:POKE XF,112:POKE H3,0:POKE LE,0
- 1420 SYS SM:SYSSP
- 1422 IF PEEK(LP)=1THEN SW=1:GOTO1428
- 1423 GOSUB 21900:IF SW THEN 1428
- 1426 GOTO 1420
- 1428 BS=PEEK(YL)
- 1435 ON SW GOTO 1440,1420,1440,1020,1020,8000
- 1440 IF BS<71 THEN 1420
- 1450 IF BS<81 THEN N=1:GOTO 1600
- 1460 IF BS<87 THEN 1420
- 1470 IF BS<96 THEN N=2:GOTO 1600
- 1475 IF BS<102 THEN 1420
- 1480 IF BS<112 THEN N=3:GOTO 1600
- 1490 IF BS<120 THEN 1420
- 1500 IF BS<128 THEN N=4:GOTO 1600
- 1510 IF BS<134 THEN 1420
- 1520 IF BS<144 THEN N=5:GOTO 1600
- 1530 IF BS<150 THEN 1420
- 1540 IF BS<160 THEN N=6:GOTO 1600
- 1550 IF BS<166 THEN 1420
- 1560 GOTO 1420
- 1600 POKE SN,0
- 1610 ON N GOTO 2000,3000,5000,6000,7000,8000
- 1900 GETQQ$:IFQQ$=CHR$(136)THEN1920
- 1910 RETURN
- 1920 IF HR<>1 THEN 8000
- 1930 HR=0:POKE BA,3:POKE SA,16:POKE CA,4:POKECH,96:POKESS,92:POKESN,0:SYSTR
- 1935 PRINT"[147]":POKE214,8:PRINT:PRINT" LOADING MAIN MENU..."
- 1940 GOTO 8000
- 2000 REM**********************************
- 2010 REM* OLD SMOOTHIE *
- 2020 REM**********************************
- 2021 PQ=1
- 2030 GOSUB 2100:REM INSTRUCTIONS
- 2035 ON SW GOTO 2040,1020,2040,1020,1020,8000
- 2040 GOSUB 2200:REM SET LEVEL
- 2045 IF BU=1 THEN BU=0:GOTO2030
- 2050 REM 2300 DRAW LINES
- 2059 POKE BA,3:POKESA,16:POKECA,4:POKESS,92:POKECH,96
- 2060 SYS KLRCOL:SYS TR:GOTO 1020
- 2100 REM************INSTRUCTIONS****************
- 2105 PRINTCHR$(147):PRINT" OLD SMOOTHIE":PRINT:PRINT
- 2110 PRINT" SMOOTHING AVERAGES A SET OF DATA TO"
- 2115 PRINT"FORM A NICE CONTINUOUS STREAM OF DATA."
- 2120 PRINT"YOU CAN SELECT A LEVEL OF SMOOTHING BY"
- 2125 PRINT"SLIDING YOUR FINGER HORIZONTALLY AND"
- 2130 PRINT"CLICKING THE LEFT BUTTON.":PRINT
- 2135 PRINT" HOLD THE LEFT BUTTON AND DRAW THE "
- 2140 PRINT"SMOOTHED LINE.":PRINT
- 2145 PRINT" TO CLEAR THE SCREEN AND SET A NEW"
- 2150 PRINT"LEVEL OF SMOOTHING, CLICK THE RIGHT "
- 2155 PRINT"BUTTON.":PRINT
- 2160 PRINT" A SMOOTHING LEVEL OF 2 SEEMS GOOD "
- 2165 PRINT"FOR MOST APPLICATIONS. LEVELS 5 & 6 ARE"
- 2170 PRINT"USEFUL WHEN EXTREMELY SMOOTH CURVES ARE"
- 2175 PRINT"NEEDED AND A DRAWING LAG IS ACCEPTABLE.":PRINT:PRINT
- 2180 PRINT" CLICK THE LEFT BUTTON TO CONTINUE"
- 2185 GOSUB 21900:IF SW=0 THEN 2185
- 2186 PRINTCHR$(147)
- 2190 RETURN
- 2200 REM***********SET LEVEL************
- 2205 POKE SN,0
- 2210 PRINTCHR$(147):PRINT" OLD SMOOTHIE":PRINT:PRINT
- 2220 PRINT" SLIDE YOUR FINGER ACROSS THE ":PRINT
- 2225 PRINT" TABLET AND CLICK THE LEFT BUTTON":PRINT
- 2230 PRINT" TO SET THE LEVEL OF SMOOTHING.":PRINT:PRINT
- 2235 PRINT" SMOOTHING LEVEL":PRINT
- 2240 POKE XS,0:POKE XF,6:POKE H1,0:POKE H3,0
- 2245 :
- 2250 SYS SM:SYS SC
- 2255 IF PEEK(RP)=1 THEN BU=1:RETURN
- 2256 GOSUB 1900
- 2260 PRINT," "
- 2261 IF((PEEK(RX)<8)AND(PEEK(RY)<8)) THEN POKE XN,PQ
- 2265 PRINT"[145]"," ";PEEK(XN);"[145]"
- 2266 PQ=PEEK(XN)
- 2270 IF PEEK(LP)=0 THEN 2250
- 2280 POKE LE,PEEK(XN):REM SET SMOOTHING LEVEL
- 2285 PQ=PEEK(XN)
- 2290 PRINTCHR$(147)
- 2300 REM*********DRAW SMOOTH LINES*******
- 2305 REM SET UP AND CLEAR THE GRAPHICS SCREEN; COLOR BLACK; XOR OFF;
- 2306 REM MULTICOLOR OFF; SPRITE FLAG 0 TO TRANSFER SPRITE DATA ONCE
- 2309 POKE BA,2:POKESA,112:POKECA,8:POKE CH,96:POKE SS,92:REM SCREEN LOCATIONS
- 2310 SYS KL:SYS TU:SYS SE:POKE LO,1:POKE CO,0:POKE XR,0:POKE MC,1:POKESF,0
- 2315 POKEBA,2:POKESS,92:REM BANK 2
- 2320 POKE SN,1:SYS SP:SYS SE:REM ENABLE SPRITE; SET SCALING FOR GRAPHICS
- 2322 :
- 2324 POKE BA,3:POKESA,16:POKECA,4:POKESS,92:POKECH,96
- 2325 IF PEEK(RP)=1 THEN SYS TR:GOTO 2200
- 2326 HR=1:GOSUB1900
- 2330 IF PEEK(B1)=0 THEN 2320
- 2331 HR=1:GOSUB1900
- 2332 :
- 2335 POKE SN,0:SYS SC:POKE X1,PEEK(XN):POKE Y1,PEEK(YN):REM SET 1ST ENDPOINT
- 2340 SYS SM
- 2342 IF PEEK(RP)=1 THEN SYS TR:GOTO2200
- 2344 IF PEEK(B1)=0 THEN 2320
- 2345 HR=1:GOSUB1900
- 2346 SYS SC
- 2350 POKE X2,PEEK(XN):POKE Y2,PEEK(YN)
- 2355 SYS LI
- 2360 POKE X1,PEEK(X2):POKE Y1,PEEK(Y2)
- 2362 IF PEEK(B1)=0 THEN 2320
- 2375 GOTO 2340
- 2380 STOP
- 3000 REM********************************
- 3005 REM JIM'S IDEA
- 3010 REM********************************
- 3020 GOSUB 3100:REM INSTRUCTIONS
- 3025 ON SW GOTO 3030,1020,3030,1020,1020,8000
- 3030 GOSUB 3200:REM BOX#1
- 3040 REM 3300 BOX#2
- 3050 REM 3400 CONNECTING LINES
- 3069 POKE BA,3:POKESA,16:POKECA,4:POKESS,92:POKECH,96
- 3070 SYS KLRCOL:POKE BA,3:POKESS,4:SYS TR:POKE SN,0
- 3071 IF BU=1 THEN BU=0:GOTO3020
- 3072 GOTO 1020
- 3100 REM*******************************
- 3110 PRINTCHR$(147):PRINT" SPRITE CURSOR":PRINT:PRINT
- 3120 PRINTCHR$(147):PRINT" JIM'S IDEA ":PRINT:PRINT
- 3130 PRINT" THIS EXAMPLE SHOWS HOW YOU CAN USE"
- 3135 PRINT"THE GRAPHIC TOOLS TO CREATE SOME"
- 3140 PRINT"CLEVER GRAPHICS APPLICATIONS.":PRINT
- 3145 PRINT" DRAW A BOX USING THE FOLLOWING STEPS:":PRINT
- 3150 PRINT" 1) POINT AT UPPER LEFT CORNER;"
- 3155 PRINT" 2) CLICK THE LEFT BUTTON;"
- 3160 PRINT" 3) POINT AT LOWER RIGHT CORNER;"
- 3165 PRINT" 4) CLICK THE LEFT BUTTON.":PRINT
- 3170 PRINT" NOW MAKE A SECOND BOX THE SAME WAY AND"
- 3175 PRINT"AND WATCH WHAT HAPPENS AS YOU FORM "
- 3180 PRINT"THE SQUARE. YOU CAN CREATE MANY UNIQUE"
- 3185 PRINT"EFFECTS. YOU CAN USE THIS ROUTINE IN"
- 3190 PRINT"YOUR OWN PROGRAMS!!!":PRINT
- 3195 PRINT:PRINT" CLICK THE LEFT BUTTON TO BEGIN"
- 3196 GOSUB 21900:IF SW=0 THEN 3196
- 3197 RETURN
- 3200 REM***********BOX #1***************
- 3205 PRINTCHR$(147)
- 3209 POKE BA,2:POKESA,112:POKECA,8:POKE CH,96:POKE SS,92:REM SCREEN LOCATIONS
- 3210 POKE MC,1:POKE CO,0:POKE XR,1:POKE SF,0:POKE LE,0:SYS KL:SYS TU
- 3215 POKE BA,2:POKE SS,92
- 3220 SYS SP
- 3221 HR=1:GOSUB1900
- 3225 IF PEEK(RP)=1 THEN BU=1:RETURN
- 3230 IF PEEK(LP)=0 THEN 3220
- 3235 SYS SE:SYS SC
- 3237 X5=PEEK(XN):Y5=PEEK(YN)
- 3240 POKE X1,X5:POKE Y1,Y5
- 3241 POKE SN,0:POKE LE,0
- 3245 SYS SM:SYS SE:SYS SC
- 3246 HR=1:GOSUB1900
- 3247 X6=PEEK(XN):Y6=PEEK(YN)
- 3250 POKE X2,X6:POKE Y2,Y6
- 3255 IF PEEK(LP)=1 THEN 3270
- 3256 IF PEEK(RP)=1 THEN BU=1:RETURN
- 3260 SYS BO:SYS BO
- 3265 GOTO 3245
- 3270 POKE XR,0:SYS BO
- 3300 REM***********BOX #2***************
- 3310 POKE XR,1
- 3315 POKE SF,0
- 3320 SYS SP
- 3321 HR=1:GOSUB1900
- 3325 IF PEEK(RP)=1 THEN BU=1:RETURN
- 3330 IF PEEK(LP)=0 THEN 3320
- 3335 SYS SE:SYS SC
- 3337 X7=PEEK(XN):Y7=PEEK(YN)
- 3340 POKE X1,X7:POKE Y1,Y7
- 3341 POKE SN,0:POKE LE,0
- 3345 SYS SM:SYS SE:SYS SC
- 3346 HR=1:GOSUB1900
- 3347 X8=PEEK(XN):Y8=PEEK(YN)
- 3350 POKE X2,X8:POKE Y2,Y8
- 3355 IF PEEK(LP)=1 THEN GOTO3370
- 3356 IF PEEK(RP)=1 THEN BU=1:RETURN
- 3360 SYS BO:SYS BO
- 3365 GOTO 3345
- 3370 POKE XR,0:SYS BO:GOSUB 3400
- 3380 POKE SF,0:POKE XR,1:GOTO 3220
- 3400 REM**********LINES*****************
- 3410 POKE X1,X5:POKE Y1,Y5:POKE X2,X7:POKE Y2,Y7
- 3415 SYS LI
- 3420 POKE X1,X6:POKE Y1,Y5:POKE X2,X8:POKE Y2,Y7
- 3425 SYS LI
- 3430 POKE X1,X5:POKE Y1,Y6:POKE X2,X7:POKE Y2,Y8
- 3435 SYS LI
- 3440 POKE X1,X6:POKE Y1,Y6:POKE X2,X8:POKE Y2,Y8
- 3445 SYS LI
- 3450 POKE X1,X7:POKEY1,Y7:POKE X2,X8:POKE Y2,Y8
- 3460 RETURN
- 3500 :
- 5000 REM********************************
- 5005 REM BAR GRAPH
- 5010 REM********************************
- 5020 GOSUB 5100:REM INSTRUCTIONS
- 5025 ON SW GOTO 5030,1020,8000,8000,8000,8000
- 5030 GOSUB 5200:REM ESTABLISH AXIS
- 5040 GOSUB 5300:REM MAKE BOXES
- 5050 GOSUB 5400:REM DETECT BARS
- 5060 REM 5500 MOVE BARS
- 5069 POKE BA,3:POKESA,16:POKECA,4:POKESS,92:POKECH,96
- 5070 SYS KLRCOL:SYS TR:POKE CO,0
- 5080 IF PEEK(B2)=1 THEN 5020
- 5090 GOTO 1020
- 5100 REM************INSTRUCTIONS****************
- 5102 POKE SN,0
- 5105 PRINTCHR$(147):PRINT" BAR GRAPH":PRINT:PRINT
- 5110 PRINT" THIS EXAMPLE SHOWS YOU HOW YOU CAN USE"
- 5115 PRINT"THE PAD AS AN AID IN BUSINESS"
- 5120 PRINT"APPLICATIONS. THE ROUTINE CREATES AN"
- 5125 PRINT"AXIS ON WHICH YOU CAN RAISE OR LOWER"
- 5130 PRINT"A SET OF BARS.":PRINT
- 5135 PRINT" TO CREATE BARS, FIRST POINT AT THE BLUE";
- 5140 PRINT"AREA AND HOLD THE LEFT BUTTON. THEN"
- 5145 PRINT"DRAG YOUR FINGER AROUND THE PAD AND"
- 5150 PRINT"RELEASE THE BUTTON TO FIX THE BAR.":PRINT
- 5155 PRINT" TO CHANGE THE HEIGHT OF A BAR, YOU CAN"
- 5160 PRINT"POINT AT THE END, PRESS THE LEFT BUTTON"
- 5165 PRINT"AND DRAG IT TO A NEW HEIGHT.":PRINT
- 5170 PRINT:PRINT:PRINT:PRINT
- 5175 PRINT" CLICK THE LEFT BUTTON TO CONTINUE"
- 5180 GOSUB 21900:IF SW=0 THEN 5180
- 5190 RETURN
- 5199 :
- 5200 REM******CREATE AXIS***************
- 5205 PRINTCHR$(147)
- 5210 POKE MC,1:POKE CO,0:POKE XR,0
- 5219 POKE BA,2:POKESA,112:POKECA,8:POKE CH,96:POKE SS,92:REM SCREEN LOCATIONS
- 5220 SYS KL:SYS TU
- 5230 POKE Y1,10:POKE Y2,190
- 5240 FOR X3=18 TO 20
- 5250 POKE X1,X3:POKE X2,X3
- 5260 SYS LI
- 5270 POKE X1,18:POKE X2,140
- 5275 FOR Y3=120 TO 121
- 5280 POKE Y1,Y3:POKE Y2,Y3
- 5285 SYS LI
- 5290 NEXT Y3
- 5295 RETURN
- 5299 :
- 5300 REM*******MAKE BLOCKS**************
- 5310 POKE CO,6
- 5320 FOR X3=30 TO 140 STEP 20
- 5330 POKE X1,X3:POKE X2,X3+10
- 5340 Y3=120
- 5350 POKE Y1,Y3:POKE Y2,Y3
- 5360 SYS LI
- 5380 NEXT X3
- 5390 RETURN
- 5399 :
- 5400 REM*******DETECT BARS*************
- 5404 FOR I=1 TO 6:TM(I)=120:NEXTI
- 5405 POKE SK,1:POKE SF,0:POKE BA,2:POKESS,92
- 5410 POKE SF,0:SYS SP
- 5411 IF PEEK(B2)=1 THEN RETURN
- 5412 HR=1:GOSUB1900
- 5413 IF PEEK(B1)=0 THEN 5410
- 5415 SYS SE:SYS SM:SYS SC
- 5420 X5=PEEK(XN):Y5=PEEK(YN)
- 5425 FOR I=30 TO 130 STEP 20
- 5430 IF(X5>=I)AND(X5<=I+10)THEN 5440
- 5433 NEXTI
- 5436 GOTO 5410
- 5440 I=INT((I-10)/20)
- 5445 IF(Y5<TM(I)+4)AND(Y5>TM(I)-4)THEN 5450
- 5447 GOTO 5410
- 5450 X3=I*20+10:X4=X3+10
- 5455 POKE SN,0:POKE LE,0
- 5460 POKE X1,X3:POKE X2,X4:POKE Y1,120
- 5470 POKE XR,1
- 5480 IF TM(I)<>120 THEN POKE Y2,TM(I):SYS BO
- 5499 :
- 5500 REM********MOVE BARS***************
- 5510 SYS SM:SYS SE:SYS SM:SYS SC
- 5511 HR=1:GOSUB1900
- 5525 IF PEEK(B2)=1 THEN RETURN
- 5530 Y3=PEEK(YN):IFY3<20THEN Y3=20
- 5535 IF Y3>180THENY3=180
- 5540 POKE Y2,Y3
- 5556 IF PEEK(B1)=0 THEN 5580
- 5560 SYS BO:SYS BO
- 5570 GOTO 5510
- 5580 SYS BO
- 5585 TM(I)=Y3
- 5590 (null) TO 5410
- 5595 RETURN
- 5999 :
- 6000 REM******************************
- 6005 REM WIPEOUTS
- 6010 REM******************************
- 6020 GOSUB 6100:REM INSTRUCTIONS
- 6025 ON SW GOTO 6030,1020,6030,1020,1020,8000
- 6030 GOSUB 6200:REM LINES
- 6035 ON SW GOTO 6069,6069,6040,6069,6069,6069
- 6040 REM 6300 BOXES
- 6050 REM 6400 CIRCLES
- 6069 POKE BA,3:POKESA,16:POKECA,4:POKESS,92:POKECH,96
- 6070 POKECS,12:SYS KLRCOL:PRINTCHR$(147):SYS TR:REM INSTRUCTIONS
- 6080 ONSW GOTO 1020,6020,6040,6020,1020,1930
- 6100 REM*************INSTRUCTIONS***************
- 6110 PRINTCHR$(147):PRINT" WIPEOUTS":PRINT:PRINT
- 6115 PRINT" THIS EXAMPLE SHOWS HOW RUBBER BOXES,"
- 6120 PRINT"RUBBER LINES, AND RUBBER CIRCLES CAN BE"
- 6125 PRINT"USED ON TOP OF A HI-RESOLUTION PICTURE.":PRINT
- 6135 PRINT" SO LONG AS YOU DRAW THE SAME OBJECT"
- 6140 PRINT"TWICE IN THE SAME PLACE WITH THE "
- 6145 PRINT"EXCLUSIVE OR 'XR' FLAG SET TO 1, THEN "
- 6150 PRINT"THE BACKGROUND WILL BE RESTORED.":PRINT
- 6155 PRINT:PRINT:PRINT:PRINT:PRINT:PRINT:PRINT:PRINT
- 6160 PRINT" ":PRINT
- 6165 PRINT"CLICK THE LEFT BUTTON TO CONTINUE"
- 6170 GOSUB 21900:IF SW=0 THEN 6170
- 6180 RETURN
- 6199 :
- 6200 REM***********LINES****************
- 6201 SYS 65412
- 6202 GOSUB 6500:REM TRANSFER MENU PICTURE
- 6205 CX=0
- 6210 POKE XR,1:POKE MC,1:POKE CO,0
- 6215 SYS TU
- 6220 POKE Y1,10:POKE Y2,190
- 6230 FOR X3=10 TO 150 STEP 10
- 6240 GOSUB 21900:IF SW<>0 THEN RETURN
- 6250 POKE X1,X3:POKE X2,X3
- 6252 SYS LI
- 6255 NEXT X3
- 6260 POKE X1,10:POKE X2,150
- 6265 FOR Y3=10 TO 190 STEP 10
- 6268 GOSUB 21900:IF SW<>0 THEN RETURN
- 6270 POKE Y1,Y3:POKE Y2,Y3
- 6272 SYS LI
- 6275 NEXT Y3
- 6280 IF CX=0 THEN CX=1:GOTO6220
- 6285 GOTO 6300
- 6299 :
- 6300 REM*********BOXES*****************
- 6305 CX=0
- 6310 Y3=30:X4=150:Y4=170
- 6320 FOR X3=10TO75 STEP5
- 6325 GOSUB 21900:IF SW<>0 THEN RETURN
- 6330 POKE X1,X3:POKE X2,X4
- 6340 POKE Y1,Y3:POKE Y2,Y4
- 6345 SYS BO
- 6350 Y3=Y3+5:X4=X4-5:Y4=Y4-5
- 6360 NEXT X3
- 6370 IF CX=0 THEN CX=1:GOTO 6310
- 6380 GOTO 6400
- 6399 :
- 6400 REM***********CIRCLES**************
- 6410 CX=0
- 6420 POKE X1,80:POKE Y1,100
- 6430 FOR RR=5 TO 75 STEP 5
- 6435 GOSUB 21900:IF SW<>0 THEN RETURN
- 6440 POKE RE,RR
- 6450 SYS CI
- 6460 NEXT RR
- 6470 IF CX=0 THEN CX=1:GOTO 6430
- 6480 GOTO 6205
- 6500 :
- 6510 POKE 53265,PEEK(53265)AND239:REM BLANK SCREEN
- 6520 POKE 251,40:POKE 252,131:POKE 253,0:POKE 254,216:REM COLOR RAM ADDRESSES
- 6530 POKE 49235,16:POKE 49236,135:POKE53281,0:REM LAST SOURCE ADDRESS
- 6540 SYS 49397 :REM COPYIT-COPIES 33576-34575 TO 55296-56295
- 6545 :
- 6550 :
- 6560 POKE 251,0:POKE 252,204:POKE 253,0:POKE 254,92:REM COLOR SCREEN ADDRESSES
- 6570 POKE 49235,232:POKE 49236,207:REM LAST SOURCE ADDRESS
- 6580 SYS 49397 :REM COPYIT-COPIES 52224-53223 TO 23552-24551
- 6590 :
- 6600 FOR G1=51712 TO 51743:REM READ IN ASSEMBLY PROGRAM
- 6610 READ G2:POKE G1,G2:REM READ DATA
- 6620 NEXT G1
- 6630 POKE 251,0:POKE 252,224:POKE 253,0:POKE 254,96:REM BIT MAP ADDRESSES
- 6640 POKE 49235,63:POKE 49236,255:REM LAST SOURCE ADDRESS
- 6650 SYS 51712:REM ASSEMBLY PROGRAM COPIES BIT MAP UNDER KERNAL
- 6651 I7=255:I8=1:REM LINES 6651-6656 FIXES PICTURE BIT MAP
- 6652 FORI9=32048TO32079
- 6653 POKEI9,I7:I8=I8+1:IFI8=5THENI7=0
- 6654 IFI8=9THENI7=255:I8=1
- 6655 IFI9=32071THENI7=240
- 6656 NEXTI9
- 6660 RESTORE:REM RESTORE DATA
- 6665 POKE BA,2:POKESA,112:POKECA,8:POKE CH,96:POKE SS,92:REM SCREEN LOCATIONS
- 6670 POKE 53265,PEEK(53265)OR16:REM RESTORE SCREEN
- 6680 RETURN
- 6800 :
- 6810 REM DATA FOR ASSEMBLY PROGRAM
- 6820 REM PROGRAM - 1) TURNS OFF INTERRUPTS
- 6830 REM 2) SWAPS OUT KERNAL AND SWAPS IN PICTURE BIT MAP
- 6840 REM 3) COPIES BIT MAP FROM $E000 TO $6000
- 6850 REM 4) SWAPS IN KERNAL AND TURNS ON INTERRUPTS
- 6860 :
- 6870 DATA 173,14,220,41,254,141,14,220
- 6880 DATA 165,1,41,253,133,1,32,245,192,165,1,9,2,133,1
- 6885 :
- 6890 DATA 173,14,220,9,1,141,14,220,96
- 6999 :
- 7000 REM********************************
- 7002 REM GRIDMAKER
- 7004 REM********************************
- 7010 GOSUB 7100:REM SETUPS
- 7020 GOSUB 7200:REM INSTRUCTIONS
- 7025 ON SW GOTO 7030,1020,7030,1020,1020,8000
- 7030 GOSUB 7300:REM PICK COLUMNS,ROWS
- 7035 IF BU=1 THENBU=0:GOTO7000
- 7040 GOSUB 7400:REM PLOT BOX
- 7045 IF BU=1 THENBU=0:GOTO7030
- 7050 GOSUB 7500:REM CALCULATE AND PLOT GRID
- 7055 IF BU=1 THEN BU=0:GOTO7040
- 7060 GOSUB 7600:REM SELECT & FILL BOX
- 7064 POKE BA,3:POKESA,16:POKECA,4:POKESS,92:POKECH,96
- 7065 IF BU=1 THENBU=0:SYS KLR:SYS TR:POKE CO,0:POKE SN,0:GOTO 7030
- 7070 SYS KLRCOL:SYS TR:POKE CO,0
- 7080 GOTO 1020
- 7100 REM***********SET UPS**************
- 7190 RETURN
- 7200 REM**************INSTRUCTIONS**************
- 7205 PRINTCHR$(147):PRINT" GRIDMAKER":PRINT
- 7210 PRINT" THIS EXAMPLE CREATES A GRID WHICH CAN"
- 7215 PRINT"BE USED AS A HI-RES MENU OR AS A DESIGN"
- 7220 PRINT"AID FOR OVERLAYS. THE GRID CAN BE ANY"
- 7225 PRINT"SIZE AND CAN BE ANYWHERE ON THE SCREEN.":PRINT
- 7230 PRINT" IN THIS DEMONSTRATION, YOU START BY"
- 7235 PRINT"CHOOSING THE NUMBER OF ROWS & COLUMNS.":PRINT
- 7240 PRINT" NEXT, YOU DRAW A BOX. FIRST POINT TO "
- 7245 PRINT"A CORNER, AND CLICK THE LEFT BUTTON."
- 7250 PRINT"THEN POINT TO THE OPPOSITE CORNER,"
- 7255 PRINT"AND CLICK THE BUTTON. THE GRID WILL BE"
- 7260 PRINT"DRAWN AUTOMATICALLY!!!":PRINT
- 7265 PRINT" THEN POINT TO ANY CELL AND CLICK THE"
- 7270 PRINT"LEFT BUTTON. IT FILLS WITH COLOR AND"
- 7280 PRINT"CREATES A CELL NUMBER WHICH CAN BE USED"
- 7285 PRINT"IN AN 'ON CN GOTO' STATEMENT.":PRINT:PRINT
- 7290 PRINT" CLICK THE LEFT BUTTON TO CONTINUE"
- 7295 GOSUB 21900
- 7296 IF SW=0 THEN 7295
- 7297 RETURN
- 7299 :
- 7300 REM*******PICK COLS, ROWS *******
- 7310 PRINTCHR$(147):PRINT" GRIDMAKER":PRINT:PRINT:PRINT
- 7315 PRINT" SLIDE YOUR FINGER ACROSS THE TABLET "
- 7320 PRINT"AND CLICK THE LEFT BUTTON TO SELECT THE"
- 7325 PRINT"NUMBER OF COLUMNS":PRINT:PRINT:PRINT
- 7330 PRINT" SLIDE YOUR FINGER DOWN THE TABLET"
- 7335 PRINT"AND CLICK THE LEFT BUTTON TO SELECT THE"
- 7340 PRINT"NUMBER OF ROWS":PRINT:PRINT:PRINT
- 7345 PRINT" CONTINUE TO THE NEXT SCREEN TO CREATE"
- 7350 PRINT"THE GRID OUTLINE.":PRINT:PRINT:PRINT:PRINT
- 7355 PRINT" ":PRINT"[145][145][145][145][145][145][145][145][145][145][145][145][145][145][145][145]"
- 7360 CC=0:RR=0:POKE LO,1
- 7365 POKE XS,1:POKE XF,20:POKE YS,1:POKE YF,20
- 7366 POKE H1,0:POKE H2,0:POKE H3,0:POKE H4,0
- 7370 SYS SM:SYS SC
- 7371 QC=PEEK(XN):IFQC=0 THENQC=1
- 7375 PRINT," [157][157][157][157]";QC:PRINT"[145][145]"
- 7376 IFPEEK(RP)=1 THEN BU=1:RETURN
- 7380 IF PEEK(LP)=1 THEN 7383
- 7381 GOSUB 21900:ON SW GOTO 7383,7395,7383,7395,1020,8000
- 7382 GOTO 7370
- 7383 CC=QC:PRINT""
- 7384 SYS SM:SYS SC
- 7385 QR=PEEK(YN):IFQR=0 THENQR=1
- 7386 PRINT," [157][157][157][157]";QR:PRINT"[145][145]"
- 7387 IFPEEK(RP)=1 THEN BU=1:RETURN
- 7388 IF PEEK(LP)=1 THEN 7391
- 7389 GOSUB 21900:ON SW GOTO 7391,7395,7391,7395,1020,8000
- 7390 GOTO 7384
- 7391 RR=QR
- 7394 RETURN
- 7395 BU=1:RETURN
- 7399 :
- 7400 REM******PLOT BOX AND CALCULATIONS*****
- 7405 PRINTCHR$(147):POKE CO,0
- 7409 POKE BA,2:POKESA,112:POKECA,8:POKE CH,96:POKE SS,92:REM SCREEN LOCATIONS
- 7410 POKE BA,2:POKE SS,92:POKE SF,0:POKE MC,1:POKE XR,1:SYS KL:SYS TU
- 7420 SYS SP:IF PEEK(RP)=1THENBU=1:POKESN,0:GOTO7494
- 7421 HR=1:GOSUB1900
- 7422 IF PEEK(LP)=0 THEN 7420
- 7424 SYS SE:SYS SM
- 7430 SYS SC:POKE X1,PEEK(XN):POKE Y1,PEEK(YN)
- 7435 POKE SN,0
- 7440 SYS SP:SYS SE:SYS SM:SYS SC
- 7445 HR=1:GOSUB1900
- 7450 POKE X2,PEEK(XN):POKE Y2,PEEK(YN)
- 7460 SYS BO:SYS BO
- 7465 SYS PE:IFPEEK(RP)=1 THENBU=1:POKESN,0:GOTO7494
- 7470 IF PEEK(LP)=0 THEN 7440
- 7475 POKE XR,0:RETURN
- 7485 SYS SP:SYS SM
- 7486 HR=1:GOSUB1900
- 7490 IF PEEK(RP)=0 THEN 7485
- 7494 POKE BA,3:POKESA,16:POKECA,4:POKESS,92:POKECH,96
- 7495 SYS TR:POKE BA,3:POKE SS,4
- 7496 RETURN
- 7499 :
- 7500 REM******CALCULATE & CREATE GRID*****
- 7505 POKE CO,0
- 7510 X3=PEEK(X1):X4=PEEK(X2):Y3=PEEK(Y1):Y4=PEEK(Y2)
- 7511 IF X3>X4 THEN W3=X3:X3=X4:X4=W3
- 7512 IF Y3>Y4 THEN W4=Y3:Y3=Y4:Y4=W4
- 7513 POKE X1,X3:POKE X2,X4:POKE Y1,Y3:POKE Y2,Y4
- 7520 DX=X4-X3:KX=INT(DX/CC):X5=X3+KX*CC
- 7525 DY=Y4-Y3:KY=INT(DY/RR):Y5=Y3+KY*RR
- 7530 POKE X2,X3:POKE Y2,Y5:X6=X3:SYS LI
- 7535 FOR IX=1 TO CC
- 7536 SYS PE:IF PEEK(RP)=1 THENBU=1:RETURN
- 7537 HR=1:GOSUB1900
- 7540 X6=X6+KX
- 7545 POKE X1,X6:POKE X2,X6
- 7550 SYS LI
- 7555 NEXT IX
- 7560 POKE X1,X3:POKE X2,X5:POKE Y1,Y3:POKE Y2,Y3:Y6=Y3:SYS LI
- 7565 FOR IY=1 TO RR
- 7566 SYS PE:IF PEEK(RP)=1 THENBU=1:RETURN
- 7567 HR=1:GOSUB1900
- 7570 Y6=Y6+KY
- 7575 POKE Y1,Y6:POKE Y2,Y6
- 7580 SYS LI
- 7585 NEXT IY
- 7595 RETURN
- 7599 :
- 7600 REM***********FILL BOX*************
- 7601 POKE SF,0
- 7602 SYS SP:HR=1:GOSUB1900
- 7603 IF PEEK(LP)=1 THEN 7606
- 7604 IF PEEK(RP)=0 THEN 7602
- 7605 BU=1:RETURN
- 7606 SYS SE:SYS SM:SYS SC
- 7607 POKE SN,0:POKE SF,0
- 7610 X7=PEEK(XN):Y7=PEEK(YN)
- 7612 IF(X7<X3)OR(X7>=X6) THEN 7602
- 7613 IF(Y7<Y3)OR(Y7>=Y6) THEN 7602
- 7614 CI=INT((X7-X3)/KX):RI=INT((Y7-Y3)/KY)
- 7615 X8=X3+KX*CI:Y8=Y3+KY*RI
- 7616 :
- 7617 CN=CI+1+RI*CC:REM CELL NUMBER FOR USE IN "ON CN GO TO"
- 7618 :
- 7620 POKE X1,X8+1:POKE X2,X8+KX-1
- 7622 POKE CO,INT(RND(1)*16)
- 7623 IF PEEK(CO)=12 THEN 7622
- 7625 FOR Y9=Y8+1 TO Y8+KY-1
- 7626 HR=1:GOSUB1900
- 7627 SYSPE:IFPEEK(RP)=1THENBU=1:RETURN
- 7630 POKE Y1,Y9:POKE Y2,Y9
- 7635 SYS LI
- 7640 NEXT Y9
- 7645 GOTO 7602
- 8000 REM**********MAIN MENU************
- 8001 POKE SN,0
- 8005 CLR
- 8010 OPEN 2,8,2,"0:SPRITE.UPARROW,S,R"
- 8015 CLOSE2
- 8020 OPEN 15,8,15
- 8025 INPUT#15,A$,B$,C$,D$
- 8030 IF VAL(A$)=0 THEN 8080
- 8035 PRINT"[147]":PRINT:PRINT:PRINT:PRINT:PRINT:PRINT" ";B$
- 8040 FORI=1TO1000:NEXTI
- 8045 GOTO 1000
- 8080 CLR
- 8085 PRINT"[147]":POKE214,8:PRINT:PRINT" LOADING MAIN MENU..."
- 8090 LOAD"MENU",8
- 21000 :
- 21200 REM ************SET UPS************
- 21202 Z5=45:Z6=46:Z7=47:Z8=48:Z9=49:Z0=50:REM ZERO PAGE BASIC POINTERS
- 21203 CBRDER=53280:CSCREEN=53281
- 21204 :
- 21205 REM ASSEMBLY ROUTINE JUMP ADDRESS NAMES
- 21208 TABRAW=49328:DEBOUNCE=49331:FILTER=49334:PERFECT=49337
- 21210 SMOOTH=49340:PADLOCK=49343:SCALE=49346:TEXTCR=49349:SPRITE=49352
- 21215 PLTDOT=49355:SETSCL=49358:TURNUN=49361:KLRCOL=49364:TRNUFF=49367
- 21220 LINE=49382:BOX=49385:RADIUS=49388:CIRCLE=49391
- 21222 KOALAPICTURE=49394
- 21223 :
- 21225 REM VARIABLE NAMES
- 21227 RX=49152:RY=49154
- 21230 B1=49156:B2=49157:LDBOUNCE=49159:RDBOUNCE=49160:LPRESS=49161:RPRESS=49162
- 21231 LX=49163:LY=49164:TX=49165:TY=49166
- 21232 FX=49168:FY=49169:UX=49172:UY=49173:ERRUR=49174:M1=49175:M2=49176
- 21235 SX=49196:SY=49197:LEVEL=49198:LOCKST=49199
- 21238 XH=49186:S1=49187:S2=49188:YH=49190
- 21240 XS=49177:YS=49179:XF=49181:YF=49183:XNW=49185:YNW=49189
- 21245 H1=49178:H2=49180:H3=49182:H4=49184
- 21247 :
- 21250 BANKA=49191:SA=49192:CA=49193:SSTART=49194:CH=49195
- 21255 SFLAG=49200:SNABLE=53269:SKOLR=53287:XLOSP=53248:XISP=53264:YLOSP=53249
- 21256 P1=49201:P2=49202:P3=49203:P4=49204
- 21260 MCM=49205:COLR=49206:XR=49208
- 21265 X1=49209:X2=49210:Y1=49211:Y2=49212:REDIUS=49213
- 21270 RETURN
- 21299 :
- 21900 REM****CHECK SWITCHES**************
- 21905 SW=0
- 21910 SYS PE
- 21920 IF PEEK(LP)=1 THEN SW=1
- 21930 IF PEEK(RP)=1 THEN SW=2
- 21935 IFPEEK(198)=0 THEN RETURN
- 21940 FORI9=1 TO PEEK(198):GET QQ$:NEXT I9
- 21965 IF QQ$=CHR$(136) THEN SW=6
- 21970 RETURN
- 30000 OPEN15,8,15:PRINT#15,"S0:EXAMPLES":SAVE"EXAMPLES",8
-